//1128. 等价多米诺骨牌对的数量
//思路：我们找的是二元数组相匹配：[a, b]与[i, j]，(a=i && b=j) || (a=j && b=i)算一组
//这里我们有一个技巧，我们找到每个二元数组中 大的数字*10+小的数字，下一次再出现一次，就说明有一组
//我们将记录放入一个数组中，再定义一个计数器ret，出现一次ret+=num[val]，再对num[val]++
//这样ret的值就是多少对


#include <vector>
using namespace std;

class Solution {
public:
    int numEquivDominoPairs(vector<vector<int>>& dominoes) {
        vector<int> num(100);
        int ret = 0;
        for(auto& e : dominoes)
        {
            int val = e[0] < e[1] ? e[1]*10+e[0] : e[0]*10+e[1];
            ret += num[val];
            num[val]++;
        }
        return ret;
    }
};